package com.snpic.appaw.module.insure.service.cxProvince;

import java.util.*;

import com.snpic.appaw.module.insure.controller.app.cxProvince.vo.AppCxProvincePageReqVO;
import com.snpic.appaw.module.insure.controller.app.cxProvince.vo.AppCxProvinceSaveReqVO;
import jakarta.validation.*;
import com.snpic.appaw.module.insure.dal.dataobject.cxProvince.CxProvinceDO;
import com.snpic.appaw.framework.common.pojo.PageResult;

/**
 * 车险出单配置-市与车险省市映射 Service 接口
 *
 * @author jijun
 */
public interface CxProvinceService {

	/**
	 * 创建车险出单配置-市与车险省市映射
	 *
	 * @param createReqVO 创建信息
	 * @return 编号
	 */
	Long createCxProvince(@Valid AppCxProvinceSaveReqVO createReqVO);

	/**
	 * 更新车险出单配置-市与车险省市映射
	 *
	 * @param updateReqVO 更新信息
	 */
	void updateCxProvince(@Valid AppCxProvinceSaveReqVO updateReqVO);

	/**
	 * 删除车险出单配置-市与车险省市映射
	 *
	 * @param id 编号
	 */
	void deleteCxProvince(Long id);

	/**
	 * 批量删除车险出单配置-市与车险省市映射
	 *
	 * @param ids 编号
	 */
	void deleteCxProvinceListByIds(List<Long> ids);

	/**
	 * 获得车险出单配置-市与车险省市映射
	 *
	 * @param id 编号
	 * @return 车险出单配置-市与车险省市映射
	 */
	CxProvinceDO getCxProvince(Long id);

	/**
	 * 获得车险出单配置-市与车险省市映射分页
	 *
	 * @param pageReqVO 不再分页查询
	 * @return 车险出单配置-市与车险省市映射分页
	 */
	PageResult<CxProvinceDO> getCxProvincePage(AppCxProvincePageReqVO pageReqVO);

	/**
	 * 根据车牌号码查询车险出单配置-市与车险省市映射
	 *
	 * @param plateNo
	 * @return
	 */
	CxProvinceDO getCxProvinceByPlateNo(String plateNo);
}